package com.shihan.redis.springboot.demo.controller;

import com.shihan.redis.springboot.demo.entity.UserEntity;
import com.shihan.redis.springboot.demo.utils.RedisTemplateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description 测试使用 Redis 提供的默认序列化方式，来实现 java 对象的存储（序列化和反序列化）
 * @Author shihan
 * @Date 2021/1/12 23:31
 * @Version 1.0
 */
@RestController
@RequestMapping("/redisTemplate")
public class RedisTemplateController {

    @Autowired
    private RedisTemplateUtils redisTemplateUtils;

    /**
     * 注意回顾一下 SpringMVC ，自动封装请求数据到入参列表中
     *【提醒】：使用 Redis 自带的序列化方式存储对象时，要保证对象是继承了 Serializable 的！
     * @param key
     * @param userEntity
     * @return
     */
    @GetMapping("/setValue")
    public String setValue(String key, UserEntity userEntity) {
        System.out.println(key);
        System.out.println(userEntity);
        redisTemplateUtils.setObject(key, userEntity);
        return "存放成功！";
    }

    @GetMapping("/getValue")
    public UserEntity getValue(String key){
        return (UserEntity) redisTemplateUtils.getObject(key);
    }

}
